Many contemporary computer systems are comprised of a number of processing systems, each having a plurality of central processing units among which the tasks to be performed by the system are divided, and wherein the processing systems are interconnected through a communications network for communication of information among the users of the systems.
A recurring problem in such systems is the management of the communications tasks, both within a given processing system and between the processing systems, as all communications operations carry with them an overhead burden resulting from the need to administer, control and keep track of communications resources and communications operations, as well as the system processor time and resources required to execute the actual communications operations. Yet another problem, which is related in part to the first problem, is the need to make optimum use of the communications resources of the systems and of the communications network connecting the systems as it frequently occurs that communications to and from one user or processing system, or between computer systems through a given path of the communications network will become saturated, thereby limiting the communications operations, while other communications resources are lightly loaded.
One approach taken to this problem has been to assign communications resources and connections to each system processing unit and to have each system processing unit administer, control and execute its own communications operations. This approach, however, has the disadvantage that a single user of a processing unit with extensive communications needs may effectively monopolize all of the processing unit's capacity.
Another approach has been to assign the administration and control, and often the execution, of all communications operations in a processing system to a single processing unit. This approach, however, has similar problems in that the communications needs of all or some of the user of the processing system may exceed the capacity of the single processing unit while, at other times, the processing unit may relatively idle but unavailable for other processing tasks. This approach has also been used to handle the administrative and control tasks for the communications network, that is, assigning the task of total network administration and control to a single processing system in the network, but has the same disadvantages as are found with this approach within a single system.
Yet another approach has been to distribute all communications administration, control and execution tasks among all of the systems in the network and, in its most extreme form, among all of the processing units of all of the systems. This approach has the problem that a complete copy all of the communications administration and control programs and the related administrative data structures of the entire network must reside in and be executed by each system, and often each processor in each system. This in turn imposes a very substantial overhead burden on the system processors, both to store and execute the programs and data structures.
The present invention provides a solution to these and other problems of the prior art and, in particular, to the problem of distributing the burden of execution of the actual communications over multiple local and remote service access points or the system processor units connected in a communications network.